import { onBeforeUnmount } from 'vue';
const Database = require("better-sqlite3");

// 请将数据库文件路径替换为你的实际路径
const DB_PATH = 'sdp.dat';

let db: any = null;

export function useDatabase() {
    // 初始化数据库连接
    if (!db) {
        db = new Database(DB_PATH);

        onBeforeUnmount(() => {
            if (db) {
                db.close();
                db = null; // 确保在卸载组件时关闭数据库连接并重置为null
            }
        });
    }

    // 执行查询操作
    function query(sql: string, params: any[] = []) {
        if (!db) {
            console.error('数据库未连接');
            return null;
        }

        const stmt = db.prepare(sql);
        return stmt.all(...params);
    }

    // 执行插入、更新、删除等操作
    function execute(sql: string, params: any[] = []) {
        if (!db) {
            console.error('数据库未连接');
            return false;
        }

        try {
            const stmt = db.prepare(sql);
            stmt.run(...params);
            return true;
        } catch (error) {
            console.error('执行数据库操作时出错', error);
            return false;
        }
    }

    return { query, execute };
}